---
title: "Grundstückspreise in Wien"
output:
flexdashboard::flex_dashboard:
storyboard: true
css: css/theme_custom.css
social: menu
source_code: embed
---
```{r setup, include=FALSE}
library(flexdashboard)
library(here)
library(tidyverse)
library(skimr)
library(janitor)
library(lubridate)
library(rvest)
library(scales)
library(plotly)
district_area_mapping <- read_html("https://de.wikipedia.org/wiki/Wiener_Katastralgemeinden") %>%
html_node(xpath = '//*[@id="mw-content-text"]/div[1]/table') %>%
html_table() %>%
clean_names()
data <- read_csv2(
here("01_data", "kaufpreissammlung_liegenschaften.csv"),
locale = readr::locale(encoding = "latin1")
) %>% clean_names() %>%
left_join(select(district_area_mapping, katastral_gemeinde, bezirk),
by = c("katastralgemeinde" = "katastral_gemeinde")) %>%
mutate(erwerbsdatum = dmy(erwerbsdatum),
jahr = year(erwerbsdatum),
jahr = if_else(jahr == 2106, 2016, jahr),
plz = as.factor(plz),
ez = as.factor(ez) ,
bezirk = str_extract(bezirk, "\\d{1,2}\\.\\s.+?(?=\\d)"),
verauserer = case_when(verausserer_code %in% c(1, 2, 4, 5, 6, 7, 10, 11, 12, 14) ~ "Gebietskörperschaften, jur. Personen mit öffentlichem Charakter",
verausserer_code == 3 ~ "Gemeinnützige Bauvereinigungen",
verausserer_code == 8 ~ "Jur. Personen des Privatrechts",
verausserer_code == 9 ~ "Privatpersonen",
TRUE ~ "Sonstige"
),
erwerber = case_when(erwerbercode %in% c(1, 2, 4, 5, 6, 7, 10, 11, 12, 14) ~ "Gebietskörperschaften, jur. Personen mit öffentlichem Charakter",
erwerbercode == 3 ~ "Gemeinnützige Bauvereinigungen",
erwerbercode == 8 ~ "Jur. Personen des Privatrechts",
erwerbercode == 9 ~ "Privatpersonen",
TRUE ~ "Sonstige"
),
rel_kaufpreis = kaufpreis / gst_fl
) %>%
filter(
str_detect(plz, "\\d{4}"),
between(jahr, 1987, 2019),
!is.na(bezirk),
erwerber != "Sonstige",
verauserer != "Sonstige"
)
theme_set(theme_bw() + theme(strip.background = element_blank()))
```
### Verteilung Erwerber pro Bezirk
```{r}
erwbars <- data %>%
count(bezirk, erwerber, sort = TRUE) %>%
group_by(bezirk) %>%
mutate(prop = n / sum(n)) %>%
ggplot(aes(x = erwerber, y = prop, fill = erwerber)) +
geom_col() +
facet_wrap(~ bezirk) +
scale_y_continuous(labels = percent_format()) +
scale_fill_manual(values = c("#8FB9A8", "#FEFAD4", "#F1828D", "#765D69")) +
theme(axis.title.x = element_blank(),
axis.ticks.x = element_blank(),
axis.text.x = element_blank(),
legend.position = "none",
strip.background = element_blank(),
panel.grid.major.x = element_blank(),
panel.grid.minor.x = element_blank()) +
labs(y = "Anteil", fill = "Erwerber")
ggplotly(erwbars)
```
### Verteilung der Veräußerer pro Bezirk
```{r}
verau_bars <- data %>%
count(bezirk, verauserer, sort = TRUE) %>%
group_by(bezirk) %>%
mutate(prop = n / sum(n)) %>%
ggplot(aes(x = verauserer, y = prop, fill = verauserer)) +
geom_col() +
facet_wrap(~ bezirk) +
scale_y_continuous(labels = percent_format()) +
scale_fill_manual(values = c("#8FB9A8", "#FEFAD4", "#F1828D", "#765D69")) +
theme(axis.title.x = element_blank(),
axis.ticks.x = element_blank(),
axis.text.x = element_blank(),
strip.background = element_blank(),
panel.grid.major.x = element_blank(),
panel.grid.minor.x = element_blank()) +
labs(y = "Anteil", fill = "Veräußerer")
ggplotly(verau_bars)
```
### Chart C
```{r}
```
-----------------------------------------------------------------------
### Chart D
```{r}
```
-----------------------------------------------------------------------
### Chart E
```{r}
```